package top.codedance.iotp.server.net.handle.configuration;

import top.codedance.iotp.common.entity.CliCmdEntity;

import java.util.ArrayList;
import java.util.List;

public class CliCmdOptionsConfig {
    public static List<CliCmdEntity> getCmds(){
        List<CliCmdEntity> cmds = new ArrayList<>();
        cmds.add(new CliCmdEntity(false,"i", "bindIp", true, "Bind ip address.", String.class));
        cmds.add(new CliCmdEntity(false,"b", "enableIpBindPort", false, "Enable ip address bind port run.", Boolean.class));
        cmds.add(new CliCmdEntity(false,"t", "tcpPort", true, "Tcp server port.", Integer.class));
        cmds.add(new CliCmdEntity(false,"m", "enabalMail", false, "Is enable mail sender.", Boolean.class));
        cmds.add(new CliCmdEntity(false,"o", "httpBindHost", true, "Http server bind host.", String.class));
        cmds.add(new CliCmdEntity(false,"k", "wsBindHost", true, "Websocket server bind host.", String.class));
        cmds.add(new CliCmdEntity(false,"h", "httpPort", true, "Http server port.", Integer.class));
        cmds.add(new CliCmdEntity(false,"w", "webSocketPort", true, "Websocket server port.", Integer.class));
        cmds.add(new CliCmdEntity(false,"u", "useThridServer", false, "Use thrid users server.", Boolean.class));
        cmds.add(new CliCmdEntity(false,"l", "logLevel", true, "Enable debug mode.", String.class));
        cmds.add(new CliCmdEntity(false,"s", "syncWaitTime", true, "Sync wait time (second).", Long.class));
        cmds.add(new CliCmdEntity(false,"d", "enableDistributed", false, "Enable distributed.", Boolean.class));
        cmds.add(new CliCmdEntity(false,"r", "registryHosts", true, "Registry hosts, Multiple are separated by ‘|’.", String.class));
        cmds.add(new CliCmdEntity(false,"u", "netUsername", true, "Net auth username.", String.class));
        cmds.add(new CliCmdEntity(false,"p", "netPassword", true, "Net auth password.", String.class));
        cmds.add(new CliCmdEntity(false,"c", "enabalCache", false, "Is enable cache verification.", Boolean.class));
        cmds.add(new CliCmdEntity(false, "e", "weight", true, "Server weight in register.", Integer.class));
        cmds.add(new CliCmdEntity(false, "z", "compatible", false, "Is it compatible with higher version clients.", Boolean.class));
        cmds.add(new CliCmdEntity(false,"a", "useAdvancedHttpServer", false, "Use advanced http server.", Boolean.class));
        cmds.add(new CliCmdEntity(false,"x", "ioThreads", true, "IO thread count.", Integer.class));
        cmds.add(new CliCmdEntity(false,"y", "workerThreads", true, "Worker thread count.", Integer.class));
        cmds.add(new CliCmdEntity(false,"v", "verifyEncryption", false, "device id and user password encryption is enabled.", Boolean.class));

        return cmds;
    }
}
